Ruby 日記 1日目: トップレベルのクラスとネストされたクラス
次のプログラムを実行するとどうなりますか
code:gold/ex01/main.rb
class C
CONST = "Good, night"
end
module M
CONST = "Good, evening"
end
module M
class C
CONST = "Hello, world"
end
end
module M
class C
p CONST
end
end
選択肢:
例外が発生する
"Good, night"と表示される
"Good, evening"と表示される
"Hello, world"と表示される
code:rb
module M
class C
p CONST
end
end
は
code:rb
p M::C::CONST
と同じだね。
問題ではクラスCが2個あるようにみえるけど C と M::C は別物だよ。
答えは
code:sh
# ruby gold/ex01/main.rb
"Hello, world"
Module.nesting を使うとネスト情報がわかるよ